home *** CD-ROM | disk | FTP | other *** search
/ Aminet 24 / Aminet 24 (1998)(GTI - Schatztruhe)[!][Apr 1998].iso / Aminet / dev / c / AmiVoGL_MDEV.lha / src / text.s < prev    next >
Text File  |  1997-12-30  |  7KB  |  477 lines

  1.  
  2. ; Maxon C++ Compiler
  3. ; LS2:work/voGL/src/text.c
  4.     mc68020
  5.     mc68881
  6.     XREF    _newtokens
  7.     XREF    _move
  8.     XREF    _VtoWxy
  9.     XREF    _verror
  10.     XREF    _strlen
  11.     XREF    _strcpy
  12.     XREF    _std__in
  13.     XREF    _std__out
  14.     XREF    _std__err
  15.     XREF    ___MEMFLAGS
  16.     XREF    _vdevice
  17.  
  18.     SECTION ":0",CODE
  19.  
  20.  
  21.     XDEF    _font
  22. _font
  23. L21    EQU    $10
  24. L22    EQU    $C84
  25.     movem.l    d2/d7/a2/a3,-(a7)
  26.     move.w    L21+4(a7),d2
  27.     XREF    userbreak_flagpos
  28.     move.l    userbreak_flagpos,a1
  29.     btst    #4,(a1)
  30.     bne    L23
  31.     tst.b    _vdevice
  32.     bne    L1
  33.     pea    L24
  34.     jsr    _verror
  35.     addq.l    #4,a7
  36. L1
  37.     cmp.w    #0,d2
  38.     blt    L25
  39.     ext.l    d2
  40.     cmp.l    _vdevice+$16E,d2
  41.     blt    L2
  42. L25
  43.     pea    L26
  44.     jsr    _verror
  45.     addq.l    #4,a7
  46. L2
  47.     tst.b    _vdevice+2
  48.     beq    L3
  49.     pea    2.w
  50.     jsr    _newtokens
  51.     addq.l    #4,a7
  52.     move.l    d0,a2
  53.     move.l    a2,a3
  54.     moveq    #0,d7
  55.     move.l    #$C,0(a3,d7.l*4)
  56.     ext.l    d2
  57.     move.l    a2,a3
  58.     moveq    #1,d7
  59.     move.l    d2,0(a3,d7.l*4)
  60.     movem.l    (a7)+,d2/d7/a2/a3
  61.     rts
  62. L3
  63.     cmp.w    #1,d2
  64.     bne    L5
  65.     move.l    _vdevice+$B0,a3
  66.     move.l    _vdevice+$88,-(a7)
  67.     jsr    (a3)
  68.     addq.l    #4,a7
  69.     tst.l    d0
  70.     bne    L4
  71.     pea    L27
  72.     jsr    _verror
  73.     addq.l    #4,a7
  74. L4
  75.     bra.b    L8
  76. L5
  77.     tst.w    d2
  78.     bne    L7
  79.     move.l    _vdevice+$B0,a3
  80.     move.l    _vdevice+$8C,-(a7)
  81.     jsr    (a3)
  82.     addq.l    #4,a7
  83.     tst.l    d0
  84.     bne    L6
  85.     pea    L28
  86.     jsr    _verror
  87.     addq.l    #4,a7
  88. L6
  89. L7
  90. L8
  91.     ext.l    d2
  92.     move.l    _vdevice+$18,a3
  93.     move.l    d2,$E(a3)
  94.     movem.l    (a7)+,d2/d7/a2/a3
  95.     rts
  96.  
  97. _getcharwidth__r
  98. L29    EQU    -$1C
  99.     link    a5,#L29+12
  100. L30    EQU    0
  101.     fmovem.x fp7,-(a7)
  102.     move.l    userbreak_flagpos,a1
  103.     btst    #4,(a1)
  104.     bne    L23
  105.     pea    -$10(a5)
  106.     pea    -$C(a5)
  107.     move.l    _vdevice+$20,-(a7)
  108.     move.l    _vdevice+$24,-(a7)
  109.     jsr    _VtoWxy
  110.     lea    $10(a7),a7
  111.     pea    -$8(a5)
  112.     pea    -4(a5)
  113.     clr.l    -(a7)
  114.     clr.l    -(a7)
  115.     jsr    _VtoWxy
  116.     lea    $10(a7),a7
  117.     fmove.s    -$C(a5),fp7
  118.     fsub.s    -4(a5),fp7
  119.     fmove.s    fp7,-$C(a5)
  120.     fmove.s    -$C(a5),fp0
  121.     fmovem.x (a7)+,fp7
  122.     unlk    a5
  123.     rts
  124.  
  125.     XDEF    _charstr
  126. _charstr
  127. L31    EQU    -$5A
  128.     link    a5,#L31+48
  129. L32    EQU    $4CFC
  130.     movem.l    d2-d7/a2/a3/a6,-(a7)
  131.     fmovem.x fp7,-(a7)
  132.     move.l    $8(a5),a2
  133.     move.l    userbreak_flagpos,a1
  134.     btst    #4,(a1)
  135.     bne    L23
  136.     move.b    _vdevice+1,d7
  137.     extb.l    d7
  138.     move.l    d7,-$16(a5)
  139.     move.l    a2,-(a7)
  140.     jsr    _strlen
  141.     addq.l    #4,a7
  142.     move.l    d0,-$1A(a5)
  143.     tst.b    _vdevice
  144.     bne    L9
  145.     pea    L33
  146.     jsr    _verror
  147.     addq.l    #4,a7
  148. L9
  149.     tst.b    _vdevice+2
  150.     beq    L10
  151.     move.l    a2,-(a7)
  152.     jsr    _strlen
  153.     addq.l    #4,a7
  154.     lsr.l    #2,d0
  155.     addq.l    #2,d0
  156.     move.l    d0,-(a7)
  157.     jsr    _newtokens
  158.     addq.l    #4,a7
  159.     move.l    d0,a6
  160.     move.l    a6,a3
  161.     moveq    #0,d7
  162.     move.l    #$A,0(a3,d7.l*4)
  163.     move.l    a2,-(a7)
  164.     move.l    a6,a3
  165.     addq.l    #4,a3
  166.     move.l    a3,-(a7)
  167.     jsr    _strcpy
  168.     addq.l    #$8,a7
  169.     fmovem.x (a7)+,fp7
  170.     movem.l    (a7)+,d2-d7/a2/a3/a6
  171.     unlk    a5
  172.     rts
  173. L10
  174.     move.l    #_vdevice+$28,a3
  175.     moveq    #0,d7
  176.     move.l    0(a3,d7.l*4),-4(a5)
  177.     move.l    #_vdevice+$28,a3
  178.     moveq    #1,d7
  179.     move.l    0(a3,d7.l*4),-$8(a5)
  180.     move.l    #_vdevice+$28,a3
  181.     moveq    #2,d7
  182.     move.l    0(a3,d7.l*4),-$C(a5)
  183.     move.b    #1,_vdevice+1
  184.     move.l    _c_z,-(a7)
  185.     move.l    _c_y,-(a7)
  186.     move.l    _c_x,-(a7)
  187.     jsr    _move
  188.     lea    $C(a7),a7
  189.     tst.l    -$16(a5)
  190.     beq    L11
  191.     move.l    _vdevice+$C8,a3
  192.     move.l    a2,-(a7)
  193.     jsr    (a3)
  194.     addq.l    #4,a7
  195.     bra    L17
  196. L11
  197.     move.l    _vdevice+$7C,d4
  198.     fmove.s    _vdevice+$20,fp7
  199.     fmove.l    fp7,d7
  200.     move.l    _vdevice+$80,d6
  201.     sub.l    d7,d6
  202.     move.l    d6,d3
  203.     fmove.s    _vdevice+$20,fp7
  204.     fmove.l    fp7,d7
  205.     move.l    d3,d6
  206.     add.l    d7,d6
  207.     move.l    d6,-$26(a5)
  208.     move.l    -$1A(a5),d7
  209.     addq.l    #1,d7
  210.     fmove.l    d7,fp7
  211.     fmul.s    _vdevice+$24,fp7
  212.     fmove.l    fp7,d7
  213.     move.l    d4,d6
  214.     add.l    d7,d6
  215.     move.l    d6,-$2A(a5)
  216.     cmp.l    _vdevice+$60,d4
  217.     ble    L12
  218.     cmp.l    _vdevice+$64,d3
  219.     bge    L12
  220.     move.l    -$26(a5),d7
  221.     cmp.l    _vdevice+$68,d7
  222.     ble    L12
  223.     move.l    -$2A(a5),d7
  224.     cmp.l    _vdevice+$5C,d7
  225.     bge    L12
  226.     move.l    _vdevice+$C8,a3
  227.     move.l    a2,-(a7)
  228.     jsr    (a3)
  229.     addq.l    #4,a7
  230.     bra    L16
  231. L12
  232.     bra.b    L14
  233. L13
  234.     move.l    _vdevice+$7C,d7
  235.     cmp.l    _vdevice+$60,d7
  236.     ble    L15
  237.     move.l    _vdevice+$7C,d7
  238.     fmove.s    _vdevice+$24,fp7
  239.     fmove.l    fp7,d6
  240.     move.l    _vdevice+$5C,d5
  241.     sub.l    d6,d5
  242.     cmp.l    d5,d7
  243.     bge    L15
  244.     move.l    _vdevice+$94,a3
  245.     move.b    d2,-(a7)
  246.     jsr    (a3)
  247.     addq.l    #2,a7
  248. L15
  249.     fmove.s    _vdevice+$24,fp7
  250.     fmove.l    fp7,d7
  251.     add.l    d7,_vdevice+$7C
  252. L14
  253.     move.l    userbreak_flagpos,a1
  254.     btst    #4,(a1)
  255.     bne    L23
  256.     move.b    (a2)+,d2
  257.     bne.b    L13
  258. L16
  259. L17
  260.     bsr    _getcharwidth__r
  261.     fmove.l    -$1A(a5),fp7
  262.     fmul.x    fp7,fp0
  263.     fmove.s    _c_x,fp7
  264.     fadd.x    fp0,fp7
  265.     fmove.s    fp7,_c_x
  266.     move.l    -$C(a5),-(a7)
  267.     move.l    -$8(a5),-(a7)
  268.     move.l    -4(a5),-(a7)
  269.     jsr    _move
  270.     lea    $C(a7),a7
  271.     move.l    -$16(a5),d7
  272.     move.b    d7,_vdevice+1
  273.     fmovem.x (a7)+,fp7
  274.     movem.l    (a7)+,d2-d7/a2/a3/a6
  275.     unlk    a5
  276.     rts
  277.  
  278.     XDEF    _cmov
  279. _cmov
  280. L34    EQU    $18
  281. L35    EQU    $C9C
  282.     movem.l    d2-d4/d7/a2/a3,-(a7)
  283.     move.s    L34+$C(a7),d2
  284.     move.s    L34+$8(a7),d3
  285.     move.s    L34+4(a7),d4
  286.     move.l    userbreak_flagpos,a1
  287.     btst    #4,(a1)
  288.     bne    L23
  289.     tst.b    _vdevice+2
  290.     beq    L18
  291.     pea    4.w
  292.     jsr    _newtokens
  293.     addq.l    #4,a7
  294.     move.l    d0,a2
  295.     move.l    a2,a3
  296.     moveq    #0,d7
  297.     move.l    #$2D,0(a3,d7.l*4)
  298.     move.l    a2,a3
  299.     moveq    #1,d7
  300.     move.l    d4,0(a3,d7.l*4)
  301.     move.l    a2,a3
  302.     moveq    #2,d7
  303.     move.l    d3,0(a3,d7.l*4)
  304.     move.l    a2,a3
  305.     moveq    #3,d7
  306.     move.l    d2,0(a3,d7.l*4)
  307.     fmovem.x (a7)+,[LATEST]
  308.     movem.l    (a7)+,#L35
  309.     rts
  310. L18
  311.     move.l    d4,_c_x
  312.     move.l    d3,_c_y
  313.     move.l    d2,_c_z
  314.     fmovem.x (a7)+,[LATEST]
  315.     movem.l    (a7)+,#L35
  316.     rts
  317.  
  318.     XDEF    _cmov2
  319. _cmov2
  320. L36    EQU    0
  321. L37    EQU    0
  322.     movem.l    #L37,-(a7)
  323.     move.l    L36+4(a7),_c_x
  324.     move.l    L36+$8(a7),_c_y
  325.     clr.l    _c_z
  326.     fmovem.x (a7)+,[LATEST]
  327.     movem.l    (a7)+,#L37
  328.     rts
  329.  
  330.     XDEF    _cmovi
  331. _cmovi
  332. L38    EQU    $C
  333. L39    EQU    0
  334.     movem.l    #L39,-(a7)
  335.     fmovem.x fp7,-(a7)
  336.     fmove.l    L38+4(a7),fp7
  337.     fmove.s    fp7,_c_x
  338.     fmove.l    L38+$8(a7),fp7
  339.     fmove.s    fp7,_c_y
  340.     fmove.l    L38+$C(a7),fp7
  341.     fmove.s    fp7,_c_z
  342.     fmovem.x (a7)+,[LATEST]
  343.     movem.l    (a7)+,#L39
  344.     rts
  345.  
  346.     XDEF    _cmovs
  347. _cmovs
  348. L40    EQU    $C
  349. L41    EQU    0
  350.     movem.l    #L41,-(a7)
  351.     fmovem.x fp7,-(a7)
  352.     move.w    L40+4(a7),d0
  353.     ext.l    d0
  354.     fmove.l    d0,fp7
  355.     fmove.s    fp7,_c_x
  356.     move.w    L40+6(a7),d0
  357.     ext.l    d0
  358.     fmove.l    d0,fp7
  359.     fmove.s    fp7,_c_y
  360.     move.w    L40+$8(a7),d0
  361.     ext.l    d0
  362.     fmove.l    d0,fp7
  363.     fmove.s    fp7,_c_z
  364.     fmovem.x (a7)+,[LATEST]
  365.     movem.l    (a7)+,#L41
  366.     rts
  367.  
  368.     XDEF    _cmov2i
  369. _cmov2i
  370. L42    EQU    $C
  371. L43    EQU    0
  372.     movem.l    #L43,-(a7)
  373.     fmovem.x fp7,-(a7)
  374.     fmove.l    L42+4(a7),fp7
  375.     fmove.s    fp7,_c_x
  376.     fmove.l    L42+$8(a7),fp7
  377.     fmove.s    fp7,_c_y
  378.     clr.l    _c_z
  379.     fmovem.x (a7)+,[LATEST]
  380.     movem.l    (a7)+,#L43
  381.     rts
  382.  
  383.     XDEF    _cmov2s
  384. _cmov2s
  385. L44    EQU    $C
  386. L45    EQU    0
  387.     movem.l    #L45,-(a7)
  388.     fmovem.x fp7,-(a7)
  389.     move.w    L44+4(a7),d0
  390.     ext.l    d0
  391.     fmove.l    d0,fp7
  392.     fmove.s    fp7,_c_x
  393.     move.w    L44+6(a7),d0
  394.     ext.l    d0
  395.     fmove.l    d0,fp7
  396.     fmove.s    fp7,_c_y
  397.     clr.l    _c_z
  398.     fmovem.x (a7)+,[LATEST]
  399.     movem.l    (a7)+,#L45
  400.     rts
  401.  
  402.     XDEF    _getwidth
  403. _getwidth
  404. L46    EQU    0
  405. L47    EQU    0
  406.     movem.l    #L47,-(a7)
  407.     move.l    userbreak_flagpos,a1
  408.     btst    #4,(a1)
  409.     bne    L23
  410.     tst.b    _vdevice
  411.     bne    L19
  412.     pea    L48
  413.     jsr    _verror
  414.     addq.l    #4,a7
  415. L19
  416.     fmove.s    _vdevice+$24,fp0
  417.     fmove.l    fp0,d0
  418.     fmovem.x (a7)+,[LATEST]
  419.     movem.l    (a7)+,#L47
  420.     rts
  421.  
  422.     XDEF    _getheight
  423. _getheight
  424. L49    EQU    0
  425. L50    EQU    0
  426.     movem.l    #L50,-(a7)
  427.     move.l    userbreak_flagpos,a1
  428.     btst    #4,(a1)
  429.     bne    L23
  430.     tst.b    _vdevice
  431.     bne    L20
  432.     pea    L51
  433.     jsr    _verror
  434.     addq.l    #4,a7
  435. L20
  436.     fmove.s    _vdevice+$20,fp0
  437.     fmove.l    fp0,d0
  438.     fmovem.x (a7)+,[LATEST]
  439.     movem.l    (a7)+,#L50
  440.     rts
  441.  
  442. L23
  443.     XREF    userbreak
  444.     jsr    userbreak
  445.  
  446. L33
  447.     dc.b    'charstr: vogl not initialized',0
  448. L26
  449.     dc.b    'font: font number is out of range',0
  450. L27
  451.     dc.b    'font: unable to open large font',0
  452. L28
  453.     dc.b    'font: unable to open small font',0
  454. L24
  455.     dc.b    'font: vogl not initialised',0
  456. L51
  457.     dc.b    'getheight: vogl not initialized',0
  458. L48
  459.     dc.b    'getwidth: vogl not initialised',0
  460.  
  461.     SECTION ":2",BSS
  462.  
  463. _c_x
  464.     ds.l    1
  465. _c_y
  466.     ds.l    1
  467. _c_z
  468.     ds.l    1
  469.  
  470.     SECTION ":0",CODE
  471.  
  472.  
  473. L23
  474.     jsr    userbreak
  475.  
  476.     END
  477.